<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <form action="" id="mainForm">
    用户名：<input type="text" name="usernam"><br>
    密  码：<input type="text" name="userpwd"><br>
    邮  箱：<input type="text" name="useremail"><br>
    签  名：<textarea name="usersign" id="" cols="30" rows="10"></textarea><br>
    <input type="submit" id="btn" value="提交">
  </form>
  <script>
    document.getElementById('btn').onclick = function(){
      //获取表单中所有的数据(通过FromData表单对象)
      //1.获取form标签的DOM对象
      var form = document.getElementById('mainForm');
      
      //2.实例化FormData表单对象将form作为参数传入
      var fd = new FormData(form);
      //经过上面两步操作 fd中就以 key value 形式保存了表单中所有的数据
      //console.log(fd) 在控制台上不能显示出来

      //3.发送Ajax请求并将fd作为参数发送给后端
      var xhr = new XMLHttpRequest();
      //当发送给后端的数据是FormData时，必须使用post
      xhr.open('post','/api/getFormData');
      //发送请求时，必须将 fd作为参数传入send()方法
      xhr.send(fd);
      xhr.onload = function(){
        alert(xhr.responseText);
      };
    };
  </script>
</body>
</html>